
'''
数据结构: 队列
在树和图这样的高级数据结构里很常用的辅助结构。
是一种先入先出类型的数据结构
v 插入元素叫做入队
1 2 3 4 5
        ^ 从末尾获取元素叫做出队

queue 排队等车的人

排队等车的人.入队("John")
排队等车的人.入队("Joo")
排队等车的人.入队("Doe")

车来了

排队等车的人.出队() Joo
排队等车的人.出队() Doe

排队等车的人
'''

class queue:
    def __init__(self, elements: list[str]):
        self.elements = elements
    
    def enqueue(self, name: str):
        self.elements.append(name)

    # 最先入队的元素最先出队
    # 最先入队的一定是 elements 中索引为 0 的位置的元素
    def dequeue(self) -> str:
        if len(self.elements) == 0:
            return ""
        
        name = self.elements[0] # 将要出队的元素
        self.elements.pop(0)
        return name

    def is_empty(self) -> bool:
        return len(self.elements) == 0


people = queue([])

people.enqueue(name = "John")
people.enqueue(name = "Joo")
people.enqueue(name = "Doe")

print(people.dequeue())
print(people.dequeue())
print(people.dequeue())

print(people.is_empty())